'\" te
.\"  Copyright 1989 AT&T
.\" Copyright (C) 1999, Sun Microsystems, Inc. All Rights Reserved
.\" The contents of this file are subject to the terms of the Common Development and Distribution License (the "License").  You may not use this file except in compliance with the License.
.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing.  See the License for the specific language governing permissions and limitations under the License.
.\" When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE.  If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
.TH TIMOD 4M "Mar 26, 1993"
.SH NAME
timod \- Transport Interface cooperating STREAMS module
.SH SYNOPSIS
.LP
.nf
#include <sys/stropts.h>
.fi

.LP
.nf
ioctl(\fIfildes\fR, I_STR, &\fImy_strioctl\fR);
.fi

.SH DESCRIPTION
.sp
.LP
\fBtimod\fR is a STREAMS module for use with the Transport Interface
("\fBTI\fR") functions of the Network Services library. The \fBtimod\fR module
converts a set of  \fBioctl\fR(2) calls into STREAMS messages that may be
consumed by a transport protocol provider that supports the Transport
Interface. This allows a user to initiate certain TI functions as atomic
operations.
.sp
.LP
The \fBtimod\fR module must be pushed onto only a stream terminated by a
transport protocol provider that supports the \fBTI\fR.
.sp
.LP
All STREAMS messages, with the exception of the message types generated from
the \fBioctl\fR commands described below, will be transparently passed to the
neighboring module or driver. The messages generated from the following
\fBioctl\fR commands are recognized and processed by the \fBtimod\fR module.
The format of the \fBioctl\fR call is:
.sp
.in +2
.nf
\fB#include <sys/stropts.h>
		-
		-
struct strioctl my_strioctl;
		-
		-
strioctl.ic_cmd = \fR\fIcmd\fR;
strioctl.ic_timout = INFTIM;
strioctl.ic_len = \fBsize\fR;
strioctl.ic_dp = (char *)\fIbuf\fR
ioctl(\fIfildes\fR, I_STR, &\fImy_strioctl\fR);
.fi
.in -2

.sp
.LP
On issuance, \fBsize\fR is the size of the appropriate \fBTI\fR message to be
sent to the transport provider and on return \fBsize\fR is the size of the
appropriate \fBTI\fR message from the transport provider in response to the
issued \fBTI \fRmessage. \fIbuf\fR is a pointer to a buffer large enough to
hold the contents of the appropriate \fBTI\fR messages. The \fBTI\fR message
types are defined in <\fBsys/tihdr.h\fR>. The possible values for the \fIcmd\fR
field are:
.sp
.ne 2
.na
\fB\fBTI_BIND\fR \fR
.ad
.RS 15n
Bind an address to the underlying transport protocol provider. The message
issued to the  \fBTI_BIND\fR ioctl is equivalent to the \fBTI\fR message type
\fBT_BIND_REQ\fR and the message returned by the successful completion of the
\fBioctl\fR is equivalent to the \fBTI\fR message type \fBT_BIND_ACK.\fR
.RE

.sp
.ne 2
.na
\fB\fBTI_UNBIND\fR \fR
.ad
.RS 15n
Unbind an address from the underlying transport protocol provider. The message
issued to the  \fBTI_UNBIND\fR ioctl is equivalent to the \fBTI\fR message type
\fBT_UNBIND_REQ\fR and the message returned by the successful completion of the
\fBioctl\fR is equivalent to the \fBTI\fR message type \fBT_OK_ACK.\fR
.RE

.sp
.ne 2
.na
\fB\fBTI_GETINFO\fR \fR
.ad
.RS 15n
Get the \fBTI\fR protocol specific information from the transport protocol
provider. The message issued to the  \fBTI_GETINFO\fR ioctl is equivalent to
the \fBTI\fR message type  \fBT_INFO_REQ\fR and the message returned by the
successful completion of the \fBioctl\fR is equivalent to the \fBTI\fR message
type \fBT_INFO_ACK.\fR
.RE

.sp
.ne 2
.na
\fB\fBTI_OPTMGMT\fR \fR
.ad
.RS 15n
Get, set, or negotiate protocol specific options with the transport protocol
provider. The message issued to the  \fBTI_OPTMGMT\fR ioctl is equivalent to
the TI message type  \fBT_OPTMGMT_REQ\fR and the message returned by the
successful completion of the \fBioctl\fR is equivalent to the \fBTI\fR message
type \fBT_OPTMGMT_ACK.\fR
.RE

.SH FILES
.sp
.ne 2
.na
\fB<\fBsys/timod.h\fR> \fR
.ad
.RS 19n
ioctl definitions
.RE

.sp
.ne 2
.na
\fB<\fBsys/tiuser.h\fR> \fR
.ad
.RS 19n
\fBTLI\fR interface declaration and structure file
.RE

.sp
.ne 2
.na
\fB<\fBsys/tihdr.h\fR> \fR
.ad
.RS 19n
\fBTPI\fR declarations and user-level code
.RE

.sp
.ne 2
.na
\fB<\fBsys/errno.h\fR> \fR
.ad
.RS 19n
system error messages file. Please see \fBerrno\fR(3C).
.RE

.SH SEE ALSO
.sp
.LP
.BR ioctl (2),
.BR Intro (3),
.BR errno (3C),
.BR tirdwr (4M)
.sp
.LP
\fISTREAMS Programming Guide\fR
.SH DIAGNOSTICS
.sp
.LP
If the \fBioctl\fR returns with a value greater than 0, the lower 8 bits of the
return value will be one of the \fBTI \fRerror codes as defined in
<\fBsys/tiuser.h\fR>. If the \fBTI\fR error is of type  \fBTSYSERR\fR, then the
next 8 bits of the return value will contain an error as defined in
<\fBsys/errno.h\fR> (see  \fBIntro\fR(3)).
